import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';

import { Map2d3dComponent } from './mapbox-measure/map-2d-3d/map-2d-3d.component';
import { CoreMessageService } from '../core/services/core-message.service';
import { MapImageListComponent } from './map-image-list/map-image-list.component';
import { MapboxMeasureComponent } from './mapbox-measure/mapbox-measure.component';
import { MapboxDrawService } from '../core/services/mapbox-draw.service';
import { MapboxMainSwitchComponent } from './mapbox-main-switch/mapbox-main-switch.component';
import { MapboxDrawToolComponent } from './mapbox-draw-tool/mapbox-draw-tool.component';
import { MapboxMapToolBarComponent } from './mapbox-map-tool-bar/mapbox-map-tool-bar.component';
import { TopMenuComponent } from '../layout/top-menu/top-menu.component';
import { UserAdminComponent } from '../layout/top-menu/user-admin/user-admin.component';
import { NavBarComponent } from '../layout/top-menu/nav-bar/nav-bar.component';
import { MapTreeControlComponent } from './map-tree-control/map-tree-control.component';
import { MapTreeComponent } from './map-tree/map-tree.component';

import { MapToolComponent } from './mapbox-map-tool/mapbox-map-tool.component';
import { MapLegendComponent } from './mapbox-map-legend/mapbox-map-legend.component';
import { MapLayerListComponent } from './mapbox-map-layer-list/mapbox-map-layer-list.component';

import { MapboxMapComponent } from '../cityfun/mapbox-map/mapbox-map.component';
import { SharedModule } from '../shared/shared.module';
import { CfScrollComponent } from './cf-scroll/cf-scroll.component';
import { MenuService } from '../core/services/menu.service';
import { LayerTreeControlComponent } from './layer-tree-control/layer-tree-control.component';
import { QuestionMarkComponent } from './question-mark/question-mark.component';
import { DragDetialPanelComponent } from './drag-detial-panel/drag-detial-panel.component';
import { ShortCardComponent } from './short-card/short-card.component';
import { QuestionManageComponent } from './question-manage/question-manage.component';

const COMPONENT = [
  MapLayerListComponent,
  MapLegendComponent,
  MapToolComponent,
  MapTreeComponent,
  MapboxMapComponent,
  CfScrollComponent,
  MapTreeControlComponent,
  NavBarComponent,
  UserAdminComponent,
  TopMenuComponent,
  MapboxMapToolBarComponent,
  MapboxDrawToolComponent,
  MapboxMainSwitchComponent,
  MapboxMeasureComponent,
  MapImageListComponent,
  Map2d3dComponent,
  LayerTreeControlComponent,
  QuestionMarkComponent,
  DragDetialPanelComponent,
  QuestionManageComponent
];
@NgModule({
  imports: [
    CommonModule, FormsModule, SharedModule
  ],
  declarations: [
    ...COMPONENT,
    ShortCardComponent
  ],
  exports: [
    ...COMPONENT,
    SharedModule,
    ShortCardComponent
  ],
  providers: [
    MapboxDrawService,
    CoreMessageService,
    MenuService
  ]
})
export class CityfunModule { }
